Page({
  data: {
    categories: [], // 商品分类
    products: [], // 当前分类的商品
    currentCategory: null, // 当前选中的分类
    isLoadingMore: false, // 是否正在加载更多
    isRefreshing: false, // 是否正在刷新
    searchKeyword: '', // 搜索关键词
  },

  onLoad() {
    this.loadCategories();
  },

  // 加载商品分类
  loadCategories() {
    wx.request({
      url: 'http://localhost:3000/categories',
      success: (res) => {
        this.setData({
          categories: res.data,
        });
        if (res.data.length > 0) {
          this.setData({
            currentCategory: res.data[0].id,
          });
          this.loadProducts(res.data[0].id);
        }
      },
    });
  },

  // 加载商品
  loadProducts(categoryId) {
    wx.request({
      url: `http://localhost:3000/products?categoryId=${categoryId}`,
      success: (res) => {
        this.setData({
          products: res.data,
        });
      },
    });
  },

  // 切换分类
  switchCategory(e) {
    const categoryId = e.currentTarget.dataset.id;
    this.setData({
      currentCategory: categoryId,
    });
    this.loadProducts(categoryId);
  },

  // 搜索输入事件
  onSearchInput(e) {
    this.setData({
      searchKeyword: e.detail.value,
    });
  },

  // 搜索按钮点击事件
  onSearch() {
    const keyword = this.data.searchKeyword;
    if (keyword) {
      wx.request({
        url: `https://your-backend-api.com/search?keyword=${keyword}`,
        success: (res) => {
          this.setData({
            products: res.data,
          });
        },
      });
    }
  },

  // 收藏文件夹文字点击事件
  onFavorite() {
    // 跳转到收藏文件夹页面
    wx.navigateTo({
      url: '/function/collect/collect', // 目标页面路径
    });
  },

  // 加载更多
  loadMore() {
    if (this.data.isLoadingMore) return;
    this.setData({ isLoadingMore: true });
    // 模拟加载更多数据
    setTimeout(() => {
      const newProducts = [...this.data.products, ...newProducts]; // 假设有新数据
      this.setData({
        products: newProducts,
        isLoadingMore: false,
      });
    }, 1000);
  },

  // 刷新
  onRefresh() {
    this.setData({ isRefreshing: true });
    // 模拟刷新数据
    setTimeout(() => {
      this.loadProducts(this.data.currentCategory);
      this.setData({ isRefreshing: false });
    }, 1000);
  },
});